#pragma once
#include "Entity.h"
#include "../SGD Wrappers/CSGD_TextureManager.h"
#include "IListener.h"
#include "EventSystem.h"
#include "../SGD Wrappers/CSGD_Direct3D.h"

class CEnemy : public CEntity, public IListener
{
private:
	CSGD_TextureManager*	m_pTM;
	CSGD_Direct3D*			m_pD3D;
	CEventSystem*			m_pES;

	//int m_nEnemyImgID;
	//int m_nEnemyWidth;
	//int m_nEnemyHeight;
	//int m_nEnemyPosX;
	//int m_nEnemyPosY;

	int m_nHealth;
	bool m_bFaceing;
	float m_fAttackTimer;
	int m_nSpeedoffset;

public:
//Inherited from CEntity///////////////////////////////
	virtual void Update	(float fElapsedTime);
	virtual void Render	(void);
	virtual RECT GetRect(void) const;
	virtual bool CheckCollision( IEntity* pOther );
///////////////////////////////////////////////////////

	CEnemy(void);
	virtual ~CEnemy(void);
	CEnemy(const CEnemy&);
	CEnemy& operator=(const CEnemy&);

	virtual void HandleEvent(CNEvent* pEvent);
	void SetHealth(int nHealth){ m_nHealth = nHealth; }
	int GetHealth(void)const{ return m_nHealth; }
	bool GetFacing(void){ return m_bFaceing; }
	void SetFacing(bool face){ m_bFaceing=face; }

	//int GetEnemyImgID(void) { return m_nEnemyImgID; }
	//int GetEnemyWidth(void) { return m_nEnemyWidth; }
	//int GetEnemyHeight(void) { return m_nEnemyHeight; }
	//int GetEnemyPosX(void) { return m_nEnemyPosX; }
	//int GetEnemyPosY(void) { return m_nEnemyPosY; }

	//void SetEnemyImgID(int img) { m_nEnemyImgID = img; }
	//void SetEnemyWidth(int wid) { m_nEnemyWidth = wid; }
	//void SetEnemyHeight(int hgt) { m_nEnemyHeight = hgt; }
	//void SetEnemyPosX(int X) { m_nEnemyPosX = X; }
	//void SetEnemyPosY(int Y) { m_nEnemyPosY = Y; }
};